Cấu trúc Frame_Ethernet

Ethernet truyền dữ liệu với most-significant octet (byte) đầu tiên; tuy nhiên bên trong mỗi octet, least-significant bit lại được truyền đầu tiên.[lower-alpha 1]

Cấu trúc bên trong của một frame Ethernet frame được xác định trong IEEE 802.3.[1] Bảng dưới đây cho thấy một packet Ethernet hoàn thiện và frame bên trong nó, như được truyền, trong đó kích thước payload MTU (đơn vị truyền cực đại) là 1500 octet.[lower-alpha 2] Một số implementation của Gigabit Ethernet và các phương án Ethernet tốc độ cao hơn hỗ trợ các frame lớn hơn (các jumbo frame).

Cấu trúc frame và packet Ethernet 802.3
TầngPreambleStart of frame delimiterMAC đíchMAC nguồnTag 802.1Q (tùy chọn)EtherType (Ethernet II) hoặc chiều dài payload bằng byte (IEEE 802.3)PayloadFrame check sequence (32‑bit CRC)Interpacket gap
7 octet1 octet6 octet6 octet(4 octet)2 octet46–1500 octet4 octet12 octet
Frame Ethernet tầng thứ 2← 64–1522 octet →
Interpacket gap và packet Ethernet tầng thứ 1← 72–1530 octet →← 12 oct. →

Tag 802.1Q (tùy chọn) chiếm không gian phụ thêm bên trong frame. Các kích thước trường cho tùy chọn này được chỉ ra trong dấu ngoặc đơn ở bảng phía trên. IEEE 802.1ad (Q-in-Q) cho phép có nhiều tag trong một frame. Tùy chọn này không được minh họa ở đây.

Packet Ethernet – tầng vật lý

Preamble và start frame delimiter

Một frame Ethernet bên trong một packet Ethernet, với SFD đánh dấu kết thúc preamble của packet và chỉ ra nơi bắt đầu của frame.[3]
Xem thêm: Syncword

Một packet Ethernet bắt đầu bởi một preamble dài 7 octet và một start frame delimiter (SFD) dài một octet.[lower-alpha 3]

Preamble chứa một pattern bit dài 56-bit (bảy-byte) gồm các bit 1 và 0 xen kẽ nhau, cho phép các thiết bị trên mạng dễ dàng đồng bộ clock receiver của chúng, cung cấp đồng bộ hóa ở mức bit. Nó được theo sau bởi SFD để cung cấp đồng bộ hóa ở mức byte và để đánh dấu một frame mới đang đến. Đối với các phương án Ethernet truyền các bit tuần tự thay vì các symbol lớn hơn, pattern bit trên-đường-dây (không được mã hóa) dành cho preamble cùng với phần SFD của frame là 10101010 10101010 10101010 10101010 10101010 10101010 10101010 10101011;[3]:sections 4.2.5 and 3.2.2 bởi vì các octet được truyền với least-significant bit được truyền trước tiên, biểu diễn hexadecimal tương ứng là 0x55 0x55 0x55 0x55 0x55 0x55 0x55 0xD5.

SFD là giá trị 8-bit (một byte) đánh dấu kết thúc của preamble, trường đầu tiên của một packet Ethernet, và chỉ ra điểm bắt đầu của một frame Ethernet. SFD được thiết kế để phá vỡ pattern bit của preamble và đánh tín hiệu sự bắt đầu của một frame thực sự.[3]:section 4.2.5 Địa chỉ MAC của đích theo ngay sau SFD. Đây là trường đầu tiên của một frame Ethernet. SFD có giá trị 171 (10101011 ở dạng nhị phân), được truyền với least-significant bit đi trước tiên như 213 (0xD5 hexadecimal).[3]:sections 3.1.1 and 3.2

Physical layer transceiver circuitry (viết tắt: PHY) cần phải kết nối Ethernet MAC với medium vật lý. Kết nối giữa một PHY và MAC độc lập với medium vật lý và sử dụng một bus từ họ giao diện độc lập media (MII, GMII, RGMII, SGMII, XGMII). Các chip transceiver Fast Ethernet sử dụng bus MII, một bus rộng 4-bit (một nibble), do đó preamble được biểu diễn bởi 14 lần 0x5, và SFD là 0x5 0xD (như các nibble). Các chip transceiver Gigabit Ethernet sử dụng bus GMII, một giao diện rộng 8-bit, vì thế chuỗi preamble theo sau bởi SFD sẽ là 0x55 0x55 0x55 0x55 0x55 0x55 0x55 0xD5 (như các byte).

Frame – Tầng liên kết dữ liệu

Header

Header gồm có địa chỉ MAC nguồn và đích (mỗi địa chỉ dài 6 octet), trường EtherType và một tag IEEE 802.1Q tùy chọn.

Trường EtherType dài hai octet và có thể dùng cho nhiều mục đích khác nhau. Giá trị nhỏ hơn hoặc bằng 1500 có nghĩa là nó được dùng để chỉ kích thước của payload bằng octet, còn giá trị lớn hơn hoặc bằng 1536 có nghĩa là nó được dùng để chỉ kiểu EtherType, xác định procol nào được đóng gói trong payload của frame. Khi được dùng với tư cách là EtherType, chiều dài của frame được xác định bởi vị trí của interpacket gapframe check sequence (FCS) hợp lệ.

Tag IEEE 802.1Q, nếu có, là một trường dài 4-octet chỉ thành viên mạng virtual LAN (VLAN) và quyền ưu tiên IEEE 802.1p.

Payload

Payload minimum là 42 octet khi có một tag 802.1Q và 46 octet khi không có tag.[lower-alpha 4][lower-alpha 5] Payload maximum là 1500 octet. Các jumbo frame (frame ngoại cỡ) phi tiêu chuẩn cho phép kích thước payload lớn hơn kích thước maximum.

Frame check sequence

Frame check sequence (FCS, chuỗi kiểm tra frame) là một cyclic redundancy check (CRC) dài 4 octet cho phép phát hiện dữ liệu bị hỏng bên trong toàn bộ frame khi nhận ở phía receiver. Giá trị FCS được tính như một hàm số của các trường frame MAC được bảo vệ: địa chỉ nguồn, địa chỉ đích, trường độ dài/kiểu, dữ liệu client MAC và padding (có nghĩa là, tất cả các trường trừ FCS).[3]:section 3.2.9

Chạy thuật toán CRC trên dữ liệu frame đã nhận được bao gồm mã CRC sẽ luôn có kết quả là một giá trị 0 nếu như dữ liệu nhận được không có lỗi, bởi vì CRC là số dư của dữ liệu chia bởi đa thức. Tuy nhiên, kĩ thuật này có thể có kết quả là các "false negative" (phủ định sai), trong đó dữ liệu với các trailing zero cũng sẽ có kết quả trong số dư cùng zero. Để tránh trường hợp này, FCS được complement (bổ sung) (dự trữ cho mỗi bit) bởi sender trước khi nó gắn vào đuôi của dữ liệu payload.[3]:section 3.2.9 Nếu làm theo cách này thì thuật toán sẽ luôn luôn có kết quả là một magic number (số huyền bí) hoặc CRC32 residue của 0xC704DD7B khi dữ liệu được nhận một cách chính xác. Điều này cho phép nhận frame và xác nhận FCS mà không cần biết trường FCS thực sự bắt đầu ở đâu.[5][6]

End of frame – tầng vật lý

End of a frame (kết thúc frame) thường được biểu thị bằng một symbol (kí hiệu) end-of-data-stream ở tầng vật lý hoặc bởi sự mất mát của tín hiệu mang (carrier signal); một ví dụ là 10BASE-T, trong đó station nhận phát hiện được kết thúc của một frame đã gửi. Sau đó tầng vật lý sử dụng một symbol end of data rõ ràng hoặc một symbol/chuỗi end of stream để tránh sự mơ hồ về nghĩa, đặc biệt khi carrier được gửi liên tục giữa các frame; một ví dụ là Gigabit Ethernet với sơ đồ mã (encoding scheme) 8b/10b, các sơ đồ này sử dụng các symbol đặc biệt được truyền đi trước và sau khi một frame được truyền.[7][8]

Interpacket gap – tầng vật lý

Interpacket gap là khoảng thời gian nhàn rỗi giữa hai packet. Sau khi một packet đã được gửi đi, các transmitter cần phải truyền ít nhất 96 bit (12 octet) của idle line state (trạng thái dây rảnh) trước khi truyền packet tiếp theo.

Tài liệu tham khảo

WikiPedia: Frame_Ethernet http://www.cisco.com/en/US/docs/internetworking/tr... http://www.xilinx.com/support/documentation/applic... http://www.ee.siue.edu/~bnoble/comp/networks/frame... http://www.hackersdelight.org/crc.pdf http://standards.ieee.org/findstds/standard/802.3-... http://standards.ieee.org/getieee802/download/802.... http://standards.ieee.org/getieee802/download/802.... http://tools.ietf.org/html/rfc1042 https://books.google.com/books?id=MRChaUQr0Q0C&pri... https://groups.google.com/group/bit.listserv.novel...